home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / RxMUI / Docs / English / DocsBrowser.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2001-05-24  |  22.2 KB  |  695 lines

  1. /*
  2.  *
  3.  * A good RxMUI programming example.
  4.  * A good RxMUI HTML documentation browser.
  5.  *
  6.  */
  7.  
  8. signal on halt
  9. signal on break_c
  10.  
  11. call StartInit()
  12. call StartCreateApp()
  13. call ReadNav("PROGDIR:navigator.html")
  14. call FinishInit()
  15. call FinishCreateApp()
  16. call AdvanceIntro("Loading docs...")
  17. call set("mwin","Open",1)
  18. if ~xget("mwin","Open") then do
  19.     call EasyRequest("Can't open window")
  20.     exit
  21. end
  22. call AdvanceIntro("Done.")
  23. call Dispose("iwin")
  24. call HandleApp
  25.  
  26. /* never reached */
  27.  
  28. /***********************************************************************/
  29. StartInit: procedure expose global.
  30.     l="rmh.library";if ~show("L",l) then;if ~AddLib(l,0,-30) then exit
  31.     if AddLibrary("rxmui.library")~=0 then exit
  32.     call RxMUIOpt("DebugMode ShowErr")
  33.     call pragma(w,n)
  34.     call ProgDir()
  35.     return
  36. /***********************************************************************/
  37. FinishInit: procedure expose global.
  38.     call AdvanceIntro("Initializing...")
  39.  
  40.     global.history.0.target="right"
  41.     global.history.0.pred=-1
  42.     global.history.0.succ=-1
  43.     global.history.current=0
  44.     global.history.max=1
  45.  
  46.     global.Gadgets.0="imdir";   global.Gadgets.0.Attr="Contents"
  47.     global.Gadgets.1="vm";      global.Gadgets.1.Attr="active"
  48.     global.Gadgets.2="spc";     global.Gadgets.2.Attr="value"
  49.     global.Gadgets.3="bl";      global.Gadgets.3.Attr="Selected"
  50.     global.Gadgets.4="rf";      global.Gadgets.4.Attr="Selected"
  51.     global.Gadgets.5="si";      global.Gadgets.5.Attr="Selected"
  52.     global.Gadgets.6="sn";      global.Gadgets.6.Attr="Selected"
  53.  
  54.     global.Configwin=0
  55.  
  56.     call ReadConfig()
  57.  
  58.     global.file=AddPart("file://PROGDIR:","introduction.html")
  59.     global.history.0.url="introduction.html"
  60.  
  61.     global.DummySpace=HSpace()
  62.  
  63.     return
  64. /**************************************************************************/
  65. ReadConfig: procedure expose global.
  66.  
  67.     call AdvanceIntro("Reading configuration...")
  68.     global.BorderLess=1
  69.     if GetToolType("DocsBrowser","BORDERLESS","BR",global.BorderLess) then
  70.         if DataType(br,"N") then
  71.             if br=0 | br=1 then global.BorderLess=br
  72.  
  73.     global.RaisingFrame=1
  74.     if GetToolType("DocsBrowser","RAISINGFRAME","rf",global.RaisingFrame) then
  75.         if DataType(rf,"N") then
  76.             if rf=0 | rf=1 then global.RaisingFrame=rf
  77.  
  78.     global.SmallImages=0
  79.     if GetToolType("DocsBrowser","SMALLIMAGES","si",global.SmallImages) then
  80.         if DataType(si,"N") then
  81.             if si=0 | si=1 then global.SmallImages=si
  82.  
  83.     global.Sunny=0
  84.     if GetToolType("DocsBrowser","SUNNY","sn",global.Sunny) then
  85.         if DataType(sn,"N") then
  86.             if su=0 | su=1 then global.Sunny=sn
  87.  
  88.     global.ViewMode="GFX"
  89.     if GetToolType("DocsBrowser","VIEWMODE","VM",global.ViewMode) then do
  90.         vm=find("TEXTGFX GFX TEXT",vm)
  91.         if vm>0 then global.ViewMode=vm-1
  92.     end
  93.     else global.ViewMode=1
  94.  
  95.     call GetToolType("DocsBrowser","IMAGESDIR","GLOBAL.IMAGESDIR","Images")
  96.  
  97.     global.Spacing=0
  98.     if GetToolType("DocsBrowser","SPACING","SP",global.Spacing) then
  99.         if DataType(su,"N") then
  100.             if su>-1 & su<16 then global.Spacing=sp
  101.  
  102.     return
  103. /**************************************************************************/
  104. UseConfig: procedure expose global.
  105.  
  106.     call set("mwin","Sleep",1)
  107.  
  108.     call DoMethod("DummyBarG","InitChanges")
  109.     call Dispose("sb")
  110.  
  111.     call MultiGetAttr("global.Gadgets")
  112.  
  113.     global.ImagesDir=global.Gadgets.0.Value
  114.     global.ViewMode=global.Gadgets.1.Value
  115.     global.Spacing=global.Gadgets.2.Value
  116.     global.BorderLess=global.Gadgets.3.Value
  117.     global.RaisingFrame=global.Gadgets.4.Value
  118.     global.SmallImages=global.Gadgets.5.Value
  119.     global.Sunny=global.Gadgets.6.Value
  120.  
  121.     bar=CreateBar("sb",global.ImagesDir,global.Spacing,global.ViewMode,global.BorderLess,global.RaisingFrame,global.SmallImages,global.Sunny,0)
  122.  
  123.     call SetBarNotifies()
  124.     call SetBarGadgets()
  125.  
  126.     call Add("DummyBarG",bar)
  127.     call DoMethod("DummyBarG","ExitChanges")
  128.  
  129.     call set("mwin","Sleep",0)
  130.  
  131.     return
  132. /**************************************************************************/
  133. SaveConfig: procedure expose global.
  134.     call set("app","Sleep",1)
  135.     call info("Saving preferences...")
  136.     call UseConfig()
  137.     call PutToolType("DocsBrowser","IMAGESDIR",global.ImagesDir)
  138.     call PutToolType("DocsBrowser","VIEWMODE",word("TEXTGFX GFX TEXT",global.ViewMode+1))
  139.     call PutToolType("DocsBrowser","SPACING",global.Spacing)
  140.     call PutToolType("DocsBrowser","BORDERLESS",global.BorderLess)
  141.     call PutToolType("DocsBrowser","RAISINGFRAME",global.RaisingFrame)
  142.     call PutToolType("DocsBrowser","SMALLIMAGES",global.SmallImages)
  143.     call PutToolType("DocsBrowser","SUNNY",global.Sunny)
  144.     call info("")
  145.     call set("app","Sleep",0)
  146.     return
  147. /**************************************************************************/
  148. StartCreateApp: procedure expose global.
  149.  
  150.     strip.0="mproject"
  151.      mproject.Title="Project"
  152.      mproject.class="menu"
  153.       mproject.0=MenuItem("mabout","About...","?")
  154.       mproject.1=MenuItem("maboutrxmui","About RxMUI...")
  155.       mproject.2=MenuItem("maboutmui","About MUI...")
  156.       mproject.3=MenuItem("","BAR")
  157.       mproject.4=MenuItem("mhide","Hide","H")
  158.       mproject.5=MenuItem("","BAR")
  159.       mproject.6=MenuItem("mquit","Quit","Q")
  160.     strip.1="meditor"
  161.      meditor.Title="Preferences"
  162.      meditor.class="menu"
  163.       meditor.0=MenuItem("mfull","Full screen","F","CHEKIT TOGGLE")
  164.       meditor.1=MenuItem("","BAR")
  165.       meditor.2=MenuItem("mdocs","DocsBrowser...","D")
  166.       meditor.3=MenuItem("mmui","MUI...","M")
  167.     res=NewObj("menustrip","strip")
  168.     if res~=0 then call err(res)
  169.  
  170.     app.Title="RxMUI docs browser"
  171.     app.Version="$" || "VER: DocsBrowser 6.7 (24.5.2001)"
  172.     app.Copyright="Copyright 1999-2001 Alfonso Ranieri"
  173.     app.Author="Alfonso Ranieri"
  174.     app.Description="RxMUI documentation browser."
  175.     app.Base="DOCSBROWSER"
  176.     app.DiskObject="docs"
  177.     app.MenuStrip="strip"
  178.     app.SubWindow="iwin"
  179.  
  180.      iwin.BorderLess=1
  181.      iwin.CloseGadget=0
  182.      iwin.DepthGadget=0
  183.      iwin.DragBar=0
  184.      iwin.NoMenus=1
  185.      iwin.SizeGadget=0
  186.      iwin.Width=-200-25
  187.      iwin.Activate=0
  188.      iwin.Contents="igroup"
  189.  
  190.       igroup.Frame="inputlist"
  191.        igroup.0="ititle"
  192.         ititle.Class="text"
  193.         ititle.Font="Big"
  194.         ititle.Contents=ParseText("%c%bRxMUI documentation")
  195.        igroup.1=hbar()
  196.        igroup.2=vspace(2)
  197.        igroup.3="intro"
  198.         intro.Class="gauge"
  199.         intro.Horiz=1
  200.         intro.Max=5
  201.         intro.Current=0
  202.  
  203.     res=NewObj("application","app")
  204.     if res~=0 then do
  205.         call EasyRequest("Can't create Application")
  206.         exit
  207.     end
  208.     return
  209. /**************************************************************************/
  210. FinishCreateApp: procedure expose global.
  211.  
  212.     call AdvanceIntro("Creating main window...")
  213.     call set("iwin","Open",1)
  214.  
  215.     mHContext.0="mhc"
  216.      mhc.Title=""
  217.      mhc.class="menu"
  218.      do i=0 to global.href.num-1
  219.          mhc.i=MenuItem("mhc."i,global.href.i.name)
  220.      end
  221.     res=NewObj("menustrip","mHContext")
  222.     if res~=0 then call err(res)
  223.  
  224.      mwin.ID="MWIN"
  225.      mwin.Title="RxMUI DocsBrowser"
  226.      mwin.UseBottomBorderScroller=1
  227.      mwin.UseRightBorderScroller=1
  228.      mwin.Contents="mgroup"
  229.  
  230.       mgroup.0="hg"
  231.        hg.Class="group"
  232.        hg.Spacing=2
  233.        hg.Horiz=1
  234.  
  235.         hg.0="navg"
  236.          navg.class="group"
  237.          navg.weight=0
  238.           navg.0="BarGroup"
  239.            BarGroup.Class="group"
  240.            BarGroup.horiz=1
  241.            BarGroup.0="bg"
  242.             bg.Class="group"
  243.             bg.Horiz=1
  244.              bg.0=HSpace()
  245.              bg.1="DummyBarG"
  246.               DummyBarG.Class="group"
  247.               DummyBarG.Spacing=0
  248.               DummyBarG.0=CreateBar("sb",global.ImagesDir,global.Spacing,global.ViewMode,global.BorderLess,global.RaisingFrame,global.SmallImages,global.Sunny,0)
  249.              bg.2=HSpace()
  250.  
  251.           navg.1="index"
  252.            index.class="register"
  253.            index.frame="readlist"
  254.            index.background="groupback"
  255.            index.titles="Index|Search"
  256.             index.0="htmlNav"
  257.              htmlNav.Class="htmlview"
  258.              htmlNav.NoContextMenu=1
  259.              htmlNav.NTAutoLoad=1
  260.             index.1="sg"
  261.              sg.class="group"
  262.              sg.frame="group"
  263.              sg.background="groupback"
  264.              sg.0="sg1"
  265.               sg1.Class="group"
  266.               sg1.Horiz=1
  267.                sg1.0=Label("Searc_h")
  268.                sg1.1=String("search","h")
  269.              sg.1="sg2"
  270.               sg2.Class="group"
  271.               sg2.Horiz=1
  272.                sg2.0=Button("pred","_Pred")
  273.                sg2.1=Button("succ","_Succ")
  274.  
  275.         hg.1="doc"
  276.          doc.class="scrollgroup"
  277.          doc.UseWinBorder=1
  278.          doc.virtgroupcontents="html"
  279.           html.Class="htmlview"
  280.           html.NoContextMenu=1
  281.           html.NTAutoLoad=1
  282.           html.frame="string"
  283.  
  284.       mgroup.1=text("info")
  285.  
  286.     res=NewObj("window","mwin")
  287.     if res~=0 then do
  288.         call EasyRequest("Can't create main window")
  289.         exit
  290.     end
  291.     call Add("app","mwin")
  292.  
  293.     call AdvanceIntro("Setting up ...")
  294.  
  295.     call Notify("mwin","closerequest",1,"app","ReturnID","quit")
  296.  
  297.     call Notify("mwin","InputEvent","ramiga b","app","Return","call GoURL('BACK')")
  298.     call Notify("mwin","InputEvent","ramiga n","app","Return","call GoURL('FORWARD')")
  299.     call Notify("mwin","InputEvent","ramiga r","html","Reload")
  300.  
  301.     call Notify("mabout","MenuTrigger","EveryTime","app","About","mwin")
  302.     call Notify("maboutrxmui","MenuTrigger","EveryTime","app","AboutRXMUI","mwin")
  303.     call Notify("maboutmui","MenuTrigger","EveryTime","app","AboutMUI","mwin")
  304.     call Notify("mhide","MenuTrigger","EveryTime","app","Set","Iconified",1)
  305.     call Notify("mquit","MenuTrigger","EveryTime","app","ReturnID","QUIT")
  306.     call notify("mfull","Checked","everytime",hg.0,"set","ShowMe","nottriggervalue")
  307.     call notify("mfull","Checked","everytime",mgroup.1,"set","ShowMe","nottriggervalue")
  308.     call Notify("mdocs","MenuTrigger","EveryTime","app","Return","call OpenConfigWindow()")
  309.     call Notify("mmui","MenuTrigger","EveryTime","app","OpenConfigWindow")
  310.  
  311.     call SetBarNotifies()
  312.  
  313.     call Notify("html","Title","EveryTime","mwin","Set","title","TriggerValue")
  314.     call Notify("html","ClickedURL","EveryTime","app","Return","call NewURLFun(h.clickedurl)","triggerattr")
  315.     call Notify("html","CurrentURL","EveryTime","info","Set","Contents","TriggerValue")
  316.  
  317.     call set("mwin","DefaultObject","html")
  318.  
  319.     call DoMethod("html","GoURL",global.file)
  320.  
  321.     call SetBarGadgets()
  322.  
  323.     call Notify("search","NewContents","EveryTime","app","Return","call SearchFun('SEARCHTOP ')")
  324.     call Notify("pred","Pressed",0,"app","Return","call SearchFun('SEARCHBACK')")
  325.     call Notify("succ","Pressed",0,"app","Return","call SearchFun('SEARCHNEXT')")
  326.  
  327.     call Notify("htmlNav","ClickedURL","EveryTime","app","Return","call NewURLFun(filepart(h.clickedurl))","triggerattr")
  328.  
  329.     call DoMethod("htmlNav","GoURL","navigator.html")
  330.  
  331.     do i=0 to global.href.num-1
  332.         call Notify("mhc."i,"menutrigger","everytime","app","Return","call NewURLFun("global.href.i")")
  333.     end
  334.  
  335.     call set("mgroup","ContextMenu","mHContext")
  336.  
  337.     return
  338. /***********************************************************************/
  339. CreateBar: procedure expose global.
  340. parse arg name,dir,sp,vm,bl,rf,si,su,rec
  341.  
  342.     bar.Spacing=sp
  343.     bar.Spread=(sp>0)
  344.     bar.Horiz=1
  345.     bar.SameHeight=1
  346.     bar.SameWidth=1
  347.  
  348.     if rec then bar.ViewMode=2
  349.     else bar.ViewMode=vm
  350.     bar.Borderless=bl
  351.     bar.RaisingFrame=rf
  352.     bar.SmallImages=si
  353.     bar.Sunny=su
  354.  
  355.     im=(~rec & vm~=2)
  356.  
  357.     if im then bar.0.Img=AddPart(dir,"Back")
  358.     bar.0.Text="Back"
  359.  
  360.     if im then bar.1.Img=AddPart(dir,"Forward")
  361.     bar.1.Text="Forward"
  362.  
  363.     if im then bar.2.Img=AddPart(dir,"Reload")
  364.     bar.2.Text="Reload"
  365.  
  366.     if im then bar.3.Img=AddPart(dir,"Stop")
  367.     bar.3.Text="Stop"
  368.  
  369.     call RxMUIOpt("")
  370.     res=NewObj("speedbar",name,"bar")
  371.     call RxMUIOpt("DebugMode ShowErr")
  372.  
  373.     global.textforced=rec
  374.  
  375.     if res~=0 then
  376.         if im & ~rec then do
  377.             return CreateBar(name,dir,sp,2,bl,rf,si,su,1)
  378.         end
  379.         else do
  380.             call EasyRequest("Can't create Speedbar")
  381.             exit
  382.         end
  383.  
  384.     return name
  385. /**************************************************************************/
  386. SetBarNotifies: procedure expose global.
  387.     call Notify("sb.0","Pressed",0,"app","Return","call GoURL('BACK')")
  388.     call Notify("sb.1","Pressed",0,"app","Return","call GoURL('FORWARD')")
  389.     call Notify("sb.2","Pressed",0,"html","Reload")
  390.     call Notify("sb.3","Pressed",0,"html","Abort")
  391.     return
  392. /**************************************************************************/
  393. info: procedure expose global.
  394. parse arg msg
  395.     call set("info","Contents",msg)
  396.     return
  397. /**************************************************************************/
  398. SetBarGadgets: procedure expose global.
  399.     c=global.history.current
  400.     call DoMethod("sb","sbset",0,"Disabled",global.history.c.pred==-1)
  401.     call DoMethod("sb","sbset",1,"Disabled",global.history.c.succ==-1)
  402.     return
  403. /**************************************************************************/
  404. halt:
  405. break_c:
  406.     exit
  407. /**************************************************************************/
  408. HandleApp: procedure expose global.
  409.     ctrl_c=2**12
  410.     do forever
  411.         call NewHandle("app","h",ctrl_c)
  412.         if and(h.signals,ctrl_c)>0 then exit
  413.         select
  414.             when h.event="QUIT" then exit
  415.             otherwise interpret h.event
  416.         end
  417.     end
  418.     /* never reached */
  419. /***********************************************************************/
  420. GoURL: procedure expose global.
  421. parse arg method,nurl,ntarget
  422.  
  423.     select
  424.         when upper(left(nurl,12))="AREXXSCRIPT:" then do
  425.             parse var nurl +12 cmd
  426.             INTERPRET cmd
  427.             return
  428.         end
  429.  
  430.         when (upper(left(nurl,7))="HTTP://") |,
  431.              (upper(left(nurl,6))="FTP://") |,
  432.              (upper(left(nurl,7))="MAILTO:") then do
  433.             call OpenURL(nurl)
  434.             return
  435.         end
  436.  
  437.         otherwise
  438.             select
  439.  
  440.                 when method="NEWURL" then do
  441.                     i=global.history.current
  442.                     m=global.history.max
  443.  
  444.                     global.history.m.url=nurl
  445.                     global.history.m.target=ntarget
  446.                     global.history.m.pred=i
  447.                     global.history.m.succ=-1
  448.  
  449.                     global.history.i.succ=m
  450.                     global.history.current=m
  451.                     global.history.max=m+1
  452.  
  453.                     call DoMethod("html","GoURL",nurl,ntarget)
  454.                 end
  455.  
  456.                 when method="BACK" then do
  457.                     i=global.history.current
  458.                     if global.history.i.pred>-1 then do
  459.                         i=global.history.i.pred
  460.                         call DoMethod("html","GoURL",global.history.i.url,global.history.i.target)
  461.                         global.history.current=i
  462.                     end
  463.                 end
  464.  
  465.                 when method="FORWARD" then do
  466.                     i=global.history.current
  467.                     if global.history.i.succ>-1 then do
  468.                         i=global.history.i.succ
  469.                         call DoMethod("html","GoURL",global.history.i.url,global.history.i.target)
  470.                         global.history.current=i
  471.                     end
  472.                 end
  473.             end
  474.     end
  475.  
  476.     call SetBarGadgets()
  477.  
  478.     return
  479. /***********************************************************************/
  480. SearchFun: procedure expose global.
  481. parse arg mode
  482.     call GetAttr("search","Contents","string")
  483.     if string~="" then call DoMethod("html","search",string,right(mode,4))
  484.     return
  485. /**************************************************************************/
  486. NewURLFun: procedure expose global.
  487. parse arg clicked
  488.     i=global.history.current
  489.     if upper(global.history.i.url)=upper(clicked) then return
  490.     call GetAttr("html","target","ntarget")
  491.     call GoURL("NEWURL",clicked,ntarget)
  492.     return
  493. /**************************************************************************/
  494. OpenConfigWindow: procedure expose global.
  495.  
  496.     if ~global.ConfigWin then do
  497.  
  498.         call set("app","Sleep",1)
  499.         call info("Creating preferences window...")
  500.  
  501.         cwin.ID="CWIN"
  502.         cwin.Title="DocsBrowser Preferences"
  503.         cwin.Contents="cmgroup"
  504.  
  505.          cmgroup.0="chg"
  506.           chg.Class="group"
  507.           chg.Horiz=1
  508.  
  509.            chg.0="lister"
  510.             lister.Class="listview"
  511.             lister.Weight=0
  512.             lister.List="list"
  513.              list.Class="listtree"
  514.              list.Frame="inputlist"
  515.               list.0="Bar"
  516.  
  517.            chg.1="pager"
  518.             pager.Class="group"
  519.             pager.PageMode=1
  520.             pager.Frame="readlist"
  521.  
  522.               BarPage.Class="group"
  523.                BarPage.0="cbg"
  524.                 cbg.Class="group"
  525.                 cbg.Horiz=1
  526.                 cbg.0=hspace()
  527.                 cbg.1="CDummyBarG"
  528.                  CDummyBarG.Class="group"
  529.                  CDummyBarG.Spacing=0
  530.                   CDummyBarG.0="csb"
  531.                    csb.class="rectangle"
  532.                 cbg.2=HSpace()
  533.                BarPage.1=HBar()
  534.                BarPage.2="cidg"
  535.                 cidg.Class="group"
  536.                 cidg.Horiz=1
  537.                 cidg.0=Label("_Images")
  538.                  cidg.1="popd"
  539.                   popd.Class="popasl"
  540.                   popd.String=string("imdir",'i')
  541.                   popd.DrawersOnly=1
  542.                BarPage.3="cscg"
  543.                 cscg.Class="group"
  544.                 cscg.Columns=4
  545.                  cscg.0=Label("_BorderLess")
  546.                  cscg.1=CheckMark("bl",,'b')
  547.                  cscg.2=Label("_RaisingFrame")
  548.                  cscg.3=CheckMark("rf",,'r')
  549.                  cscg.4=Label("S_mallImages")
  550.                  cscg.5=CheckMark("si",,'m')
  551.                  cscg.6=Label("Sunn_y")
  552.                  cscg.7=CheckMark("sn",,'y')
  553.                  cscg.8=Label("Spacing")
  554.                  cscg.9="spc"
  555.                   spc.Class="numericbutton"
  556.                   spc.Min=0
  557.                   spc.Max=15
  558.                  cscg.10=HSpace()
  559.                  cscg.11=HSpace()
  560.                BarPage.4="vm"
  561.                 vm.Class="cycle"
  562.                 vm.Entries="TextGfx|Gfx|Text"
  563.              pager.0=MakeObj(,"VCenter","BarPage")
  564.  
  565.          cmgroup.1="cbug"
  566.           cbug.Class="group"
  567.           cbug.Horiz=1
  568.            cbug.0=Button("csave","_Save")
  569.            cbug.1=Button("cuse","_Use")
  570.            cbug.2=Button("ccancel","_Cancel")
  571.  
  572.         res=NewObj("window","cwin")
  573.         if res~=0 then exit
  574.  
  575.         call Add("app","cwin")
  576.  
  577.         call Notify("cwin","CloseRequest",1,"cwin","Set","Open",0)
  578.  
  579.         call Notify("imdir","NewContents","EveryTime","app","Return","call CBarChanged()")
  580.         call Notify("spc","Value","EveryTime","app","Return","call CBarChanged()")
  581.         call Notify("vm","Active","everytime","app","Return","call CBarChanged()")
  582.  
  583.         call Notify("cuse","Pressed",0,"app","Return","call UseConfig()")
  584.         call Notify("cuse","Pressed",0,"cwin","Set","Open",0)
  585.         call Notify("csave","Pressed",0,"app","Return","call SaveConfig()")
  586.         call Notify("csave","Pressed",0,"cwin","Set","Open",0)
  587.         call Notify("ccancel","Pressed",0,"cwin","Set","Open",0)
  588.  
  589.         call info("")
  590.         call set("app","Sleep",0)
  591.  
  592.         call set("list","ActiveID",1)
  593.  
  594.         global.Configwin=1
  595.     end
  596.  
  597.     global.Gadgets.0.value=global.ImagesDir
  598.     global.Gadgets.1.value=global.viewmode
  599.     global.Gadgets.2.value=global.Spacing
  600.     global.Gadgets.3.value=global.BorderLess
  601.     global.Gadgets.4.value=global.RaisingFrame
  602.     global.Gadgets.5.value=global.SmallImages
  603.     global.Gadgets.6.value=global.Sunny
  604.     call MultiSetAttr("global.Gadgets",1)
  605.  
  606.     call CBarChanged()
  607.  
  608.     call set("cwin","Open",1)
  609.     call GetAttr("cwin","Open","O")
  610.     if ~o then exit
  611.  
  612.     return
  613. /**************************************************************************/
  614. ViewModeChanged: procedure expose global.
  615. parse arg vm
  616.     call CBarChanged()
  617.     return
  618.     call DoMethod("CDummyBarG","InitChanges")
  619.     call set("csb","viewmode",vm)
  620.     call DoMethod("CDummyBarG","ExitChanges")
  621.     return
  622. /**************************************************************************/
  623. SetCBarNotifies: procedure expose global.
  624.     call Notify("bl","Selected","EveryTime","csb","Set","BorderLess","TriggerValue")
  625.     call Notify("rf","Selected","EveryTime","csb","Set","RaisingFrame","TriggerValue")
  626.     call Notify("si","Selected","EveryTime","csb","Set","SmallImages","TriggerValue")
  627.     call Notify("sn","Selected","EveryTime","csb","Set","Sunny","TriggerValue")
  628.     return
  629. /**************************************************************************/
  630. CBarChanged: procedure expose global.
  631.  
  632.     call set("cwin","Sleep",1)
  633.  
  634.     call DoMethod("CDummyBarG","InitChanges")
  635.     call Dispose("csb")
  636.  
  637.     call MultiGetAttr("global.Gadgets")
  638.  
  639.     bar=CreateBar("csb",global.Gadgets.0.Value,global.Gadgets.2.Value,global.Gadgets.1.Value,global.Gadgets.3.Value,global.Gadgets.4.Value,global.Gadgets.5.Value,global.Gadgets.6.Value,0)
  640.  
  641.     call set("vm","disabled",global.textforced)
  642.  
  643.     call SetCBarNotifies()
  644.  
  645.     call Add("CDummyBarG",bar)
  646.     call DoMethod("CDummyBarG","ExitChanges")
  647.  
  648.     call set("cwin","Sleep",0)
  649.  
  650.     return
  651. /**************************************************************************/
  652. AdvanceIntro: procedure
  653. parse arg msg
  654.     call getattr("intro","current","c")
  655.     set.Current=c+1
  656.     set.InfoText=msg
  657.     call SetAttrs("intro","set")
  658.     return
  659. /**************************************************************************/
  660. MakeHRef: procedure expose global.
  661. parse arg name,con
  662.     t.Contents=con
  663.     t.InputMode="immediate"
  664.     t.preparse=parsetext("%r")
  665.     t.showselstate=0
  666.     t.font="button"
  667.     return xnewobj("text",name,"t")
  668. /**************************************************************************/
  669. ReadNav: procedure expose global.
  670. parse arg file
  671.     call open(in,file,r)
  672.     i=0
  673.     do while ~eof(in)
  674.         l=readln(in)
  675.         if l="" then iterate
  676.         parse var l "<a href=" h ">" n "</a>"
  677.         if h~="" then do
  678.             global.href.i=h
  679.             global.href.i.name=n
  680.             i=i+1
  681.         end
  682.     end
  683.     global.href.num=i
  684.     return
  685. /**************************************************************************/
  686. HrefButton: procedure expose global.
  687. parse arg n,i
  688.     t.Contents="1B721B331B75"x || n
  689.     t.InputMode="immediate"
  690.     t.ShowSelState=0
  691.     t.Font="button"
  692.     return xnewobj("text",n,"t")
  693. /**************************************************************************/
  694. /* $VER: DocsBrowser.rexx 6.7 (24.5.2001)*/
  695.